export default class State {
	constructor() {

	}

	exportSaveState() {
		var state = {};

		if(gameState == 1 || gameState == -1 || (gameState === 0 && localStorage.getItem('saveState') !== undefined)) {
			state = {
				hex: $.extend(true, {}, MainHex),
				blocks: $.extend(true, [], blocks),
				score: score,
				wavegen: waveone,
				gdx: gdx,
				gdy: gdy,
				comboTime:settings.comboTime
			};

			state.hex.blocks.map(function(a){
				for (var i = 0; i < a.length; i++) {
					a[i] = $.extend(true, {}, a[i]);
				}

				a.map(descaleBlock);
			});

			for (var i = 0; i < state.blocks.length; i++) {
				state.blocks[i] = $.extend(true, {}, state.blocks[i]);
			}

			state.blocks.map(descaleBlock);
		}

		localStorage.setItem('highscores', JSON.stringify(highscores));

		return JSONfn.stringify(state);
	}

	descaleBlock(b) {
		b.distFromHex /= settings.scale;
	}

	writeHighScores() {
			highscores.sort(
			function(a,b){
				a = parseInt(a, 10);
				b = parseInt(b, 10);
				if (a < b) {
					return 1;
				} else if (a > b) {
					return -1;
				}else {
					return 0;
				}
			}
		);
		highscores = highscores.slice(0,3);
		localStorage.setItem("highscores", JSON.stringify(highscores));
	}

	clearSaveState() {
		localStorage.setItem("saveState", "{}");
	}

	isStateSaved() {
		return localStorage.getItem("saveState") != "{}" && localStorage.getItem("saveState") != undefined;
	}
}
